【VUE项目实战】29.实现修改用户功能 |
您所在的位置:网站首页 › el-table template scope弹出对话框 › 【VUE项目实战】29.实现修改用户功能 |
接上篇《28.实现添加用户功能(2)-预校验与发起新增请求》 上一篇我们完成了用户新增的功能,本篇我们来完成用户修改的功能。 一、要实现的效果我们要实现的效果就是,找到要修改的用户,点击操作一栏的修改按钮: 首先实现点击修改按钮弹出修改对话框,我们找到修改按钮为其添加一个click属性,指定名为“showEditDialog”的函数: 然后在template内最下方添加修改用户的Dialog对话框标签代码: 取 消 确 定里面的“editDialogVisible”属性为“控制修改用户对话框的显示与隐藏”的参数,然后“editUserForm”是绑定的修改用户的表单对象,“editUserFormRules”是修改用户的表单规则校验对象,三个都需要在data中定义: //上面代码省略 return { //获取用户列表的参数对象 queryInfo: { query: "", pagenum: 1, //当前的页数 pagesize: 2, //每页的数量 }, userList : [], total: 0, addDialogVisible: false, //控制添加用户对话框的显示与隐藏 editDialogVisible: false, //控制修改用户对话框的显示与隐藏 //添加用户的表单数据 addUserForm: {}, //修改用户的表单数据 editUserForm: {}, //修改表单的验证规则对象 editUserFormRules: { email: [{required:true,message:'请输入邮箱',trigger:'blur'},{validator: checkEmail,trigger:'blur'}], mobile: [{required:true,message:'请输入手机号',trigger:'blur'},{validator: checkMobile,trigger:'blur'}] }, //添加表单的验证规则对象 addUserFormRules: { username: [{required:true,message:'请输入用户名',trigger:'blur'}, {min:3,max:10,message:'用户名长度在3~10个字符',trigger:'blur'}], password: [{required:true,message:'请输入密码',trigger:'blur'}, {min:6,max:15,message:'密码长度在6~15个字符',trigger:'blur'}], email: [{required:true,message:'请输入邮箱',trigger:'blur'},{validator: checkEmail,trigger:'blur'}], mobile: [{required:true,message:'请输入手机号',trigger:'blur'},{validator: checkMobile,trigger:'blur'}] } };然后在方法区定义editDialogClosed、showEditDialog函数: //关闭编辑用户的对话框 editDialogClosed(){ this.$refs.editUserFormRef.resetFields(); }, //展示编辑用户的对话框 showEditDialog(){ this.editDialogVisible = true; }刷新页面,我们点击修改按钮,可以看到对话框已经出来了: 上一步我们弹出了修改对话框,但是还没有获取改行用户的数据并显示出来,我们来实现它。 首先我们需要先拿到用户的ID,然后通过ID获取到当前行用户的信息。我们之前讲过,可以通过作用域插槽,接收到scope数据对象,通过“scope.row”就可以拿到这一行的数据信息。 我们修改操作区域,定义slot-scope="scope",然后通过“scope.row.id”拿到当前行的用户id,将其作为形参传递到showEditDialog方法中: 方法中我们先打印一下用户ID,看看能不能出来: //展示编辑用户的对话框 showEditDialog(id){ this.editDialogVisible = true; console.log(id); }点击编辑按钮后,可以看到打印了当前行的ID: 用户ID拿到后,使用根据ID查询用户信息的接口: 效果: 修改用户信息的API接口: 下面我们在方法区域定义该函数: //点击按钮,修改用户信息 editUser(){ this.$refs.editUserFormRef.validate(async valid =>{ if(!valid) return;//校验没通过,返回 //可以发起修改用户的网络请求 const {data:res} = await this.$http.put('users/'+ this.editUserForm.id,{ email:this.editUserForm.email, mobile:this.editUserForm.mobile }); if(res.meta.status!=200){ return this.$message.error('修改用户失败!'); } this.$message.success('修改用户成功!'); // 隐藏修改用户的对话框 this.editDialogVisible = false; //重新获取用户列表数据 this.getUsersList(); }) }效果: 至此,我们的用户修改功能全部完成。 下一篇我们来讲解如何实现用户删除的操作。 参考:黑马程序员(www.itheima.com)Vue项目实战教学视频 转载请注明出处:https://blog.csdn.net/u013517797/article/details/122284499 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |